package ae.pcfc.cldos.online.common.manager.provider;

import ae.pcfc.cldos.online.common.manager.BaseManager;
import ae.pcfc.cldos.online.common.manager.GSEmployeeDetailsManager;
import ae.pcfc.cldos.online.net.service.GSEmployeeDetailsService;
import ae.pcfc.cldos.online.net.service.vo.EmployeeDetailsFromGSVO;
import ae.pcfc.cldos.online.net.service.vo.InsertVoucherVO;
import ae.pcfc.cldos.online.net.service.vo.ListOfEmployeeDetailsFromGSVO;
import ae.pcfc.cldos.online.net.service.vo.NOCDetailsFromGSVO;

/**
 * 
 * @author arosa
 *
 */
public class GSEmployeeDetailsManagerImpl extends BaseManager implements GSEmployeeDetailsManager  {

	private GSEmployeeDetailsService gsEmployeeDetailsService;
	
	public void setGsEmployeeDetailsService(
			GSEmployeeDetailsService gsEmployeeDetailsService) {
		this.gsEmployeeDetailsService = gsEmployeeDetailsService;
	}
	
	public ListOfEmployeeDetailsFromGSVO getEmployeeDetailsList(String companyLicenseNo, Integer page, Integer perPage){
		return gsEmployeeDetailsService.getEmployeeDetailsList(companyLicenseNo, page, perPage);
	}
	
	public boolean validateEmployee(String employeeId, String companyLicNo){
		return gsEmployeeDetailsService.validateEmployee(employeeId, companyLicNo);
	}
	
	public boolean validateVisitor(String visitorId, String companyLicNo){
		return gsEmployeeDetailsService.validateVisitor(visitorId, companyLicNo);
	}
	
	public EmployeeDetailsFromGSVO getEmployeeDetailsById(String employeeId, String companyLicNo, boolean isGeneralAdminRequest){
		return gsEmployeeDetailsService.getEmployeeDetailsById(employeeId, companyLicNo, isGeneralAdminRequest);
	}
	
	public ListOfEmployeeDetailsFromGSVO getVisitorsDetailsList(String companyLicenseNo, Integer page, Integer perPage){
		return gsEmployeeDetailsService.getVisitorsDetailsList(companyLicenseNo, page, perPage);
	}
	
	public EmployeeDetailsFromGSVO getVisitorDetailsById(String visitorId, String companyLicNo, boolean isGeneralAdminRequest){
		return gsEmployeeDetailsService.getVisitorDetailsById(visitorId, companyLicNo, isGeneralAdminRequest);
	}
	
	/* (non-Javadoc)
	 * @see ae.pcfc.cldos.online.common.manager.GSEmployeeDetailsManager#getNOCDetailsById(java.lang.String, java.lang.String)
	 */
	public NOCDetailsFromGSVO getNOCDetailsById(String empId, String companyLicNo,String appId){
		return gsEmployeeDetailsService.getNOCDetailsById(empId, companyLicNo,appId);
	}
	/* (non-Javadoc)
	 * @see ae.pcfc.cldos.online.common.manager.GSEmployeeDetailsManager#getEmployeeStatus(java.lang.String)
	 */
	public String getEmployeeStatus(String clientRefNo){
		return gsEmployeeDetailsService.getEmployeeStatus(clientRefNo);
	}
	/**
	 * @param OfflineAppId
	 * @return
	 */
	public boolean approveVisitVisaCancel(String OfflineAppId,String appId, String licNo){
		return gsEmployeeDetailsService.approveVisitVisaCancel(OfflineAppId,appId,licNo);
	}
	
	/**
	 * @param insertVoucherVO
	 */
	public void insertPaymentAdvice(InsertVoucherVO insertVoucherVO){
		 gsEmployeeDetailsService.insertPaymentAdvice(insertVoucherVO);
	}
	/**
	 * @param OfflineAppId
	 * @param adviceId
	 */
	public void deactivatePaymentAdvice(String OfflineAppId, String adviceId){
		 gsEmployeeDetailsService.deactivatePaymentAdvice(OfflineAppId,adviceId);
	}
}
